//修改矩阵
/*给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ，新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等，接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。

返回矩阵 answer 。
m == matrix.length
n == matrix[i].length
2 <= m, n <= 50
-1 <= matrix[i][j] <= 100
测试用例中生成的输入满足每列至少包含一个非负整数。*/
/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume
 * caller calls free().
 */
int** modifiedMatrix(int** matrix, int matrixSize, int* matrixColSize,
                     int* returnSize, int** returnColumnSizes) {
    *returnSize = matrixSize;
    int* max = (int*)malloc(matrixColSize[0] * sizeof(int));
    max = memset(max, -1, matrixColSize[0] * sizeof(int));
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < matrixColSize[i]; j++) {
            if (max[j] < matrix[i][j])
                max[j] = matrix[i][j];
        }
    }
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < matrixColSize[i]; j++) {
            if (matrix[i][j] == -1)
                matrix[i][j] = max[j];
        }
    }
    *returnColumnSizes = matrixColSize;
    return matrix;
}


//数组异或操作
/*给你两个整数，n 和 start 。

数组 nums 定义为：nums[i] = start + 2*i（下标从 0 开始）且 n == nums.length 。

请返回 nums 中所有元素按位异或（XOR）后得到的结果。
1 <= n <= 1000
0 <= start <= 1000
n == nums.length
*/
int xorOperation(int n, int start) {
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum^=start+2*i;
    }
    return sum;
}
